作業系統服務
簡單來說,作業系統提供方便的環境給程式執行,同時也提供有幫助性的功能給使用者使用。作業系統服務大致上可分為九大類 :
- 使用者介面(User Interface,UI) :
大多數的OS都具有UI。如命令型態介面(Command-Line)、圖形化介面(Graphics User Interface,GUI)、批次系統介面(Batch)。
- 程式執行(Program execution):
系統需下載程式進入記憶體接著再執行。
- 輸出入作業系統(I/O operations) :
執行程式時可能會需要使用到I/O作業,像是檔案或I/O裝置。
- 檔案系統操作(File-system manipulaion):
需要使用到讀寫、新增、刪除、搜尋等功能。
- 通訊(Communications):
在同部電腦裡或電腦跟電腦間溝通更改程式資料。
6.偵錯(Error detection) :
因為在CPU、記憶體、軟硬體,甚至使用者程式中都有可能出現錯誤,所以需要透過偵錯來找到錯誤並加以修正。
以上是幫助使用者使用的服務,以下三項是提供給系統使用的服務。
- 資源分配(Resource allocation):
在多使用者或程式執行時,以公平、有效率的方式分配資源給所有程式。
- 紀錄(Accounting):
追蹤使用者使用什麼種類、多少量的資源。
- 保護安全(Prtection and security):
保護系統內部存取權限控制;防止內外部系統遭受攻擊或不當使用。
使用者作業系統介面
分為三項作介紹 :
- 命令型態介面(Command-Line,CLI):
- 有時在內核中執行,有時在系統程式中執行。
- 具備多類型的「殼」(Shells),包裝在OS外部,依據不同OS使用不同的殼。
- 從使用者端取得指令並執行。
- 圖形化介面(Graphics User Interface,GUI):
- 在桌上型電腦中很常見到。使用在滑鼠、鍵盤、螢幕中,以多樣的圖形表示為檔案、程式等。
- 在現今中,已有很多程式包含CLI和GUI兩種。
3.觸控螢幕介面(Touchscreen Interface):
- 不需要滑鼠,鍵盤方面則是以虛擬化的方式呈現在螢幕上供使用者使用。
- 具有聲控模式,如IPhone中的Siri。
系統呼叫(System Calls)
- 由OS提供程式介面服務。
- 通常使用高階語言讀寫,如C或C++。
- 多數程式存取權限透過Application Programming Interface(API),非直接使用System Calls。
- 所謂的程式呼叫就是跟OS本身服務要溝通的API,就叫做「系統呼叫」。
- 因為每個System Calls都對應到一組數字,需要透過辨識數字,確認是哪種的System Calls才能執行。
系統呼叫參數傳送
有三種方法可以傳送參數到OS中:
- 傳送參數到暫存器中。
- 參數儲存在table、block、memory中,在傳送其位置到暫存器。
- 由程式將參數取代、推入堆疊中,然後由OS將其傳送出去。
系統呼叫種類
大致分為6種種類:
- 行程控制(Process control):
具有新增、刪除、修查、等待行程時間等功能。還具有一種用於管理行程間共享數據存取的「鎖定」功能。
- 檔案管理(File management):
屬於高階I/O作業。且依然具有新增、刪除、讀寫等功能。
- 裝置管理(Device management):
屬於低階I/O作業。能夠進行連接跟分離裝置等功能。
- 資訊維護(Information maintenance):
取得系統時間或數據,建立時間或數據等功能。
- 通訊(Communication):
- 從客戶端傳送訊息到服務端
- 分享相關空間或動作
- 遠距硬碟也可透過System Calls連接或分離到裝置上。
- 保護(Protection):
控制存取資源、允許或否認使用者權限等,也可以變成Command-Line下的命令來做。
系統程序
其目的就是提供便利好使用的環境,給程式發展和執行。一些分類在UI中,其他分類在System Calls中。大致分成八大項:
- 檔案操作(File manipulation):
一樣具有新增、刪除、重新命名等功能。
- 狀態資料(Status Information):
- 提供詳細的表現紀錄資料。
- registry:是一種系統程式,可以用來更改系統設定,做到防毒的動作。
- 檔案修改(File modification):
使用文字處理器新增或修改檔案;也可下指令去搜尋特定檔案。
- 程式語言支持(Programming-language support):
提供編譯器、翻譯器等功能。
- 程式裝載執行(Program load and execution):
提供重新定位裝載器等debug高階系統語言。
- 通訊(Communications):
- 提供機制給新增虛擬連接,含行程、使用者、電腦系統等。
- 傳送訊息到其他瀏覽器,像是訊息、E-mail、遠程登錄等。
- 背景程式服務(Background Services):
- 無介面提供給使用者使用。
- 在電腦啟動時開始啟動,可進行系統維護、檢查。
- 應用程式(Application prorgrams):
- 不屬於一種系統。
- 由使用者執行使用。
- 被視為OS非典型的一部分。
因為作業系統架構內容較多,所以我分為上下兩篇來說明紀錄,內容可以較為詳細。